/*
 *    Copyright (c) 2018-2025, proj All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the proj developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: proj
 */

package com.ykht.proj.coupon.vo;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 服务员扩展表
 *
 * @author proj code generator
 * @date 2021-02-01 19:00:18
 */
@Data
@ApiModel(value = "服务员扩展表")
public class FxWaiterExtVo implements Serializable {
private static final long serialVersionUID = 1L;

    /**
     * 
     */
    @ApiModelProperty(value="")
    private Long id;
	@ApiModelProperty(value="父级ID（上次切换的服务员ID，首次的服务员ID 为0）")
	private Long parentId;
	@ApiModelProperty(value="登录人ID（服务员）")
	private Long loginId;
    /**
     * 公司id
     */
    @ApiModelProperty(value="公司id")
    private Long companyId;
    /**
     * 品牌id
     */
    @ApiModelProperty(value="品牌id")
    private Long brandId;
    /**
     * 门店id
     */
    @ApiModelProperty(value="门店id")
    private Long shopId;
	/**
	 * 0前厅1后厨
	 */
	@ApiModelProperty(value="0前厅1后厨")
	private Integer waiterType;
    /**
     * 余额
     */
    @ApiModelProperty(value="余额")
    private BigDecimal amountMoney = BigDecimal.ZERO;
	/**
	 * 服务员工作状态  1 工作中(现在工作的商家)  2 上家工作（上家工作的商家）3（上家工作的品牌）
	 */
	@ApiModelProperty(value="服务员工作状态  1 工作中(现在工作的商家)  2 上家工作（上家工作的商家）3（上家工作的品牌）")
	private Integer workState;
	@ApiModelProperty(value="开始时间")
	@JsonDeserialize(using = LocalDateTimeDeserializer.class)
	@JsonSerialize(using = LocalDateTimeSerializer.class)
	private LocalDateTime startTime;
	@ApiModelProperty(value="结束时间")
	@JsonDeserialize(using = LocalDateTimeDeserializer.class)
	@JsonSerialize(using = LocalDateTimeSerializer.class)
	private LocalDateTime endTime;
    /**
     * 创建人
     */
    @ApiModelProperty(value="创建人")
    private Long createUser;
    /**
     * 修改人
     */
    @ApiModelProperty(value="修改人")
    private Long updateUser;
    /**
     * 创建时间
     */
    @ApiModelProperty(value="创建时间")
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(value="更新时间")
    private LocalDateTime updateTime;
    /**
     * 0可用1删除
     */
    @ApiModelProperty(value="0可用1删除")
    private Integer delFlag;
    /**
     * 租户ID
     */
    @ApiModelProperty(value="租户ID",hidden=true)
    private Integer tenantId;


    //       ================================

	/**
	 * 登录角色类型  0系统管理员 1公司 2品牌 3门店 4服务员
	 */
	@ApiModelProperty(value="登录角色类型 0系统管理员 1公司 2品牌 3门店 4服务员")
	private Integer loginRoleType;


	/**
	 * 查看角色类型  1 服务员  2 门店  3 品牌  4公司
	 */
	@ApiModelProperty(value="查看角色类型  1 服务员  2 门店  3 品牌  4公司 ")
	private Integer lookRoleType;

	@ApiModelProperty(value="服务员数量")
	private Integer waiterCount;

	@ApiModelProperty(value="门店名称")
	private String shopName;

	@ApiModelProperty(value="门店电话")
	private String shopPhone;

	@ApiModelProperty(value="门店数量")
	private Integer shopCount;

	@ApiModelProperty(value="品牌名称")
	private String brandName;

	@ApiModelProperty(value="品牌logo")
	private String logoUrl;

	@ApiModelProperty(value="品牌数量")
	private Integer brandCount;

	@ApiModelProperty(value="公司名称")
	private String companyName;

	@ApiModelProperty(value="公司数量")
	private Integer companyCount;

	@ApiModelProperty(value="公司电话")
	private String companyPhone;

	@ApiModelProperty(value="团队人数")
	private Integer teamCount;

	@ApiModelProperty(value="累计佣金")
	private BigDecimal commissionCount = BigDecimal.ZERO;

	@ApiModelProperty(value="累计提现")
	private BigDecimal withdrawalCount = BigDecimal.ZERO;

	@ApiModelProperty(value="核销优惠券统计")
	private Integer couponCount;

	@ApiModelProperty(value="转发统计")
	private Integer forwardCount;

	@ApiModelProperty(value="邀请统计")
	private Integer invitationCount;

	@ApiModelProperty(value="服务员id")
	private Long waiterId;

	@ApiModelProperty(value = "头像")
	private String avatar;

	@ApiModelProperty(value = "用户名")
	private String username;
	@ApiModelProperty(value = "wx昵称")
	private String nickName;

	@ApiModelProperty(value = "手机号")
	private String userPhone;

	@ApiModelProperty(value = "性别：0 男  1女")
	private Integer sex;

	@ApiModelProperty(value = "服务员可提现金额")
	private BigDecimal withdrawalAmount = BigDecimal.ZERO;

	@ApiModelProperty(value="查询ID （服务员 门店 品牌 公司）")
	private List<Long> userIds;

	@ApiModelProperty(value="创建开始时间")
	private LocalDateTime createStaTime;

	@ApiModelProperty(value="创建结束时间")
	private LocalDateTime createEndTime;

	@ApiModelProperty(value="C端用户ID")
	private Long personId;


	@ApiModelProperty(value = "饭友手机号（C端用户）")
	private String personPhone;

	@ApiModelProperty(value = "饭友名称（C端用户）")
	private String personName;

	@ApiModelProperty(value = "饭友微信名称（C端用户）")
	private String personNickName;

	@ApiModelProperty(value = "饭友注册时间（C端用户）")
	private LocalDateTime personCreateTime;

	@ApiModelProperty(value="饭友累计核销佣金（C端用户）")
	private BigDecimal personCommissionCount = BigDecimal.ZERO;

	@ApiModelProperty(value="饭友累计核销次数（C端用户）")
	private Integer personCouponCount;

	@ApiModelProperty(value="饭友ID")
	private Long fanYouId;

	@ApiModelProperty(value="分销类型 0 注册   1 转发  2 核销")
	private Integer distributionType;

	@ApiModelProperty(value="服务员id集合")
	private List<Long> waiterIdList;

}
